package jcu.salt.client;

import java.rmi.RemoteException;
import java.util.Set;

import jcu.sal.common.StreamID;
import jcu.sal.common.CommandFactory.Command;
import jcu.sal.common.cml.CMLDescriptions;
import jcu.sal.common.exceptions.NotFoundException;
import jcu.sal.common.exceptions.SensorControlException;
import jcu.sal.common.sml.SMLDescription;

/**
 * defines the necessary methodes used for a connection to the sal agent
 * by use of a rmi connection
 * 
 * @author SAL-T team
 *
 */
public interface SaltClient {
	
	public Set<SMLDescription> getSensorList(String protocolName);

	public CMLDescriptions getCML(SMLDescription smldesc) throws SalClientException, NotFoundException, RemoteException;

	public StreamID startStream(Command c, String sid) throws SalClientException, NotFoundException, SensorControlException, RemoteException;
	
	public void stopStream(StreamID sid) ;
	
	public String getSalID();

}
